1. Field of the Invention
The present invention relates to information processing apparatuses, information processing methods, programs, and navigation apparatuses, and, more particularly, to an information processing apparatus, an information processing method, a program, and a navigation apparatus that are capable of providing, for example, three-dimensional (3D) images for which a viewing angle is controlled in accordance with a distance from a viewpoint.
2. Description of the Related Art
For example, stereoscopic images (3D images) in two dimensions that stereoscopically represent a 3D space have been available by, for example, projecting solid objects in the 3D space onto a plane. FIG. 1 shows an example of the structure of an image processing apparatus for generating such 3D images using coordinate information of a solid object in a 3D space.
Referring to FIG. 1, an image processing apparatus 1 includes a 3D object input section 11 and a 3D object rendering section 12. In FIG. 1, rectangles represent processors forming the image processing apparatus 1, and rounded-corner rectangles represent data input to or output from the processors.
The image processing apparatus 1 receives a 3D object 21, which is data representing a solid object in a 3D space, as an input. The data includes, for example, coordinate information of vertices. The image processing apparatus 1 generates a 3D image 22 based on the 3D object 21.
The 3D object input section 11 reads data (the 3D object 21) in which the structure of a solid object is described and converts the description contents into a scene graph including a 3D object hierarchy. The 3D object input section 11 supplies the scene graph to the 3D object rendering section 12.
The 3D object rendering section 12 generates a 3D image based on the scene graph. The 3D object rendering section 12 includes a polygon detection unit 13 and a polygon rendering unit 14. The polygon detection unit 13 detects a polygon from the received scene graph and supplies information of the polygon to the polygon rendering unit 14. The polygon rendering unit 14 projects vertices of the supplied polygon onto a 2D projection plane and renders the 3D image 22. The polygon rendering unit 14 outputs the 3D image 22 to the outside of the image processing apparatus 1.
FIG. 2 is a flowchart showing a specific 3D image process performed by the image processing apparatus 1. In other words, in step S1, the 3D object input section 11 reads the 3D object 21 supplied from the outside of the image processing apparatus 1, converts the 3D object 21 into a scene graph, and supplies the scene graph to the polygon detection unit 13 of the 3D object rendering section 12. In step S2, the polygon detection unit 13 performs polygon detection for detecting a polygon from the scene graph and supplies the detection result to the polygon rendering unit 14. In step S3, in accordance with the detection result, the polygon rendering unit 14 determines whether or not an unprocessed polygon exists in the scene graph. If it is determined that there is an unprocessed polygon, the process proceeds to step S4. In step S4, the polygon rendering unit 14 renders the polygon on a 2D projection plane in accordance with the scene graph. After the processing in step S4 is completed, the process returns to step S2. Then, the polygon rendering unit 14 repeats the subsequent processing for another polygon.
In other words, the polygon detection unit 13 and the polygon rendering unit 14 of the 3D object rendering section 12 operate to repeat the processing from steps S2 to S4 and to render all the polygons included in the scene graph on the 2D projection plane (render the 3D image 22). If it is determined in step S3 that there is no unprocessed polygon; the polygon rendering unit 14 outputs then the rendered 3D image 22 to the outside of the image processing apparatus 1 and terminates the 3D image process.
A method using such rendering processing for generating a 3D image of a road ahead on a road map viewed from the present location of a moving body and for showing the present location of the moving body using the 3D image is available. (See, for example, Japanese Examined Patent Application Publication No. 6-90041.) A 3D image 31 shown in FIG. 3 is generated using such a method. The 3D image 31 is one of the guide images used for, for example, a so-called car navigation system, and it represents the field of view of the driver of a vehicle. The 3D image 31 is rendered so as to be approximated to the view actually seen by the driver (user). Thus, the driver is able to intuitively (easily) understand a road guide image superimposed on the 3D image 31.
In the 3D image 31, in order to provide depth perception, an object is represented smaller in proportion to an increase in the distance from a viewpoint. In other words, in a 3D space, the greater the distance between an object and a viewpoint, the smaller the object is rendered. In contrast, the smaller the distance between an object and a viewpoint, the larger the object is rendered.
In other words, as shown in FIG. 4A, when a driver (vehicle) 41 travels in the direction of an arrow 42 on a road 43 located between buildings 44-1 to 44-3 and buildings 44-4 to 44-6 that are arranged so as to face each other with sides 43A and 43B therebetween, in the 3D image 31, an object farther away from the driver 41 is represented smaller and an object closer to the driver 41 is represented larger, as shown in FIG. 4B. Thus, in the 3D image 31, the distance between the sides 43A and 43B reduces in proportion to an increase in the distance from the driver 41. In addition, the buildings 44-1 to 44-6 are represented smaller in proportion to an increase in the distance from the driver 41.
However, 3D images generated based on such perspective are likely to cause, for example, wide-angle distortion or the like. (See, for example, Japanese Unexamined Patent Application Publication No. 2000-122524.) For example, for a 3D image rendered based on perspective, the circumference of the image (that is, an end portion of the image) is stretched (distorted). In order to prevent such distortion and to accurately perform rendering based on perspective, the image processing apparatus 1 needs to recognize a viewpoint and the accurate position of an object in a 3D space, to accurately set the positional relationship, and to use the setting for drawing. For example, the depth perception of a 3D image changes depending on the distance between a viewpoint and an object by, for example, emphasizing depth perception of a 3D image of an object that is closer to the viewpoint much more than depth perception of a 3D image of an object that is farther away from the viewpoint. If such setting is not properly performed, an object is distorted in the 3D image.